Lately, the emergence of what are known as “Web services” has extended the World Wide Web's capability by providing access to computational procedures over the Web. Initially, content published on the Web was in the form of static pages that were downloaded to a browser. The browser interpreted the page for display, as well as handling user input to objects such as forms or buttons. Later adaptations to Web servers include providing dynamic content on demand, although this content was still intended for access by Web browsers.
Web services allow information to be accessed in other application domains besides browsers. Web services use some of the same open and extensible formats that have made Web browsers so useful. As a result, Web services can be powerful tools usable for providing distributed data access in many application domains.
The World Wide Web consortium (W3C)'s Web Service Activity group defines a Web service as a software application identified by a Uniform Resource Identifier (URI), whose interfaces and bindings are capable of being defined, described, and discovered as Extensible Markup Language (XML) artifacts. A Web service supports direct interactions with other software agents using XML based messages exchanged via Internet-based protocols. Web services are represented by a stack of emerging standards that describe a service-oriented, application architecture, collectively providing a distributed computing paradigm having a particular focus on delivering services across the Internet.
Generally, Web services are implemented as self-contained modular applications that can be published in a ready-to-use format, located, and invoked across the World Wide Web. When a Web service is deployed, other applications and Web services can locate and invoke the deployed service. They can perform a variety of functions, ranging from simple requests to complicated business processes.
Web services are typically configured to use standard Web protocols such as Hypertext Transfer Protocol (HTTP), Extensible Markup Language (XML) and Simplified Object Access Protocol (SOAP). The HyperText Transfer Protocol (HTTP) is a generic protocol that governs the transfer of data (e.g., files) across a network. XML is a mark-up language that addresses the problem of how to identify a common syntax and semantics for the data exchanged between applications. The schema (or structure) of an XML document may be specified by a schema definition using schema definition languages such as XML Schema or Document Type Definition (DTD). SOAP (Simple Object Access Protocol), often used to support interactions among Web services, provides a way to wrap RPC (Remote Procedure Call) calls into XML messages exchanged through HTTP (HyperText Transfer Protocol) or some other transport protocol.
Web services promise to make the construction of extremely loosely-coupled distributed information systems easier by providing technology that exposes the functionality of an information system and makes it available through standard Web technologies. In some aspects however, Web services are no different than standard programmatic interfaces because of the effort needed to utilize them. The Web service interfaces must be analyzed by a person (e.g., a computer programmer) and manually integrated (e.g., coded) for integration into a data processing system. Further, when the services or the interface to the services changes, the data processing arrangement may require manual modification to prevent failure or improper behavior.